<?php
/* 
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 *
 * @author Eder
 */
class MedicoDAO {
    
    var $className;
    
    public function __construct() {
        $this->className = 'MedicoDAO';
        LogUtil::info("class $this->className", "__construct");
    }

    public function __destruct() {
        LogUtil::info("class $this->className", "__destruct");
    }
    
    public function obtenerMedicos() {
        LogUtil::info("class $this->className", "obtenerMedicos");
        global $wpdb;  
        $tempMedicos = $wpdb->get_results('SELECT   id,
                                                    codLolimsa,
                                                    descripcion,
                                                    monto,
                                                    codServLolimsa,
                                                    orden,
                                                    estado,
                                                    fecha 
                                            FROM 
                                                    wp_sisres_medico'
                                          , ARRAY_A);

        $medicos = array();
        $i = 0;
        if (!empty($tempMedicos)) {
            foreach ($tempMedicos as $tempMedico) {
                $medicos[$i++] = $this->cargarMedico($tempMedico);
            }
        }
        return $medicos;
    }
    
    public function obtenerMedicosActivos() {
        LogUtil::info("class $this->className", "obtenerMedicosActivos");
        global $wpdb;  
        $tempMedicos = $wpdb->get_results('SELECT   id,
                                                    codLolimsa,
                                                    descripcion,
                                                    monto,
                                                    codServLolimsa,
                                                    orden,
                                                    estado,
                                                    fecha 
                                            FROM 
                                                    wp_sisres_medico 
                                            WHERE
                                                    estado = 1
                                            ORDER BY 
                                                    orden'
                                          , ARRAY_A);

        $medicos = array();
        $i = 0;
        if (!empty($tempMedicos)) {
            foreach ($tempMedicos as $tempMedico) {
                $medicos[$i++] = $this->cargarMedico($tempMedico);
            }
        }
        return $medicos;
    }
    
    public function obtenerMedicoPorId($id) {
        LogUtil::info("class $this->className", "obtenerMedicoPorId");
        global $wpdb;  
        $tempMedico = $wpdb->get_row('SELECT   id,
                                                codLolimsa,
                                                descripcion,
                                                monto,
                                                codServLolimsa,
                                                orden,
                                                estado,
                                                fecha 
                                            FROM 
                                                wp_sisres_medico 
                                            WHERE
                                                id = '.$id
                                          , ARRAY_A);
        $medico = $this->cargarMedico($tempMedico);
        return $medico;
    }
    
    public function guardarMedico($medico){
        LogUtil::info("class $this->className", "guardarMedico");
        global $wpdb; 
        $data_array = array(
            //'id' => $medico->id, 
            'codLolimsa' => $medico->codLolimsa,  
            'descripcion' => $medico->descripcion,  
            'monto' => $medico->monto, 
            'codServLolimsa' => $medico->codServLolimsa, 
            'orden' => $medico->orden,  
            'estado' => $medico->estado,  
            'fecha' => date("Y-m-d H:i:s",Util::obtenerHoraActualPeru())
                );
        $wpdb->insert('wp_sisres_medico',$data_array);
        return $wpdb->insert_id;
    }
    
    public function actualizarMedico($medico){
        LogUtil::info("class $this->className", "actualizarMedico");
        global $wpdb; 
        $wpdb->query('UPDATE 
                            wp_sisres_medico 
                        SET 
                            codLolimsa = "'. $medico->codLolimsa.'", 
                            descripcion = "'. $medico->descripcion.'", 
                            monto  = "'. $medico->monto.'",
                            codServLolimsa = "'. $medico->codServLolimsa.'", 
                            orden = "'. $medico->orden.'",  
                            estado = "'. $medico->estado.'"
                        WHERE 
                            id = '. $medico->id);
        return true;
    }    

    private function cargarMedico($tempMedico){ 
        LogUtil::info("class $this->className", "cargarMedico");
        $medico = new Medico();
        $medico->id = $tempMedico['id']; 
        $medico->codLolimsa = $tempMedico['codLolimsa'];   
        $medico->descripcion = $tempMedico['descripcion'];  
        $medico->monto = $tempMedico['monto']; 
        $medico->codServLolimsa = $tempMedico['codServLolimsa']; 
        $medico->orden = $tempMedico['orden'];  
        $medico->estado = $tempMedico['estado'];  
        $medico->fecha = $tempMedico['fecha'];  
        return $medico;
    }   

}
?>
